home *** CD-ROM | disk | FTP | other *** search
- • GETfile and PUTfile on the MS-DOS emulator are difficult to use if
- you only have a single drive. However, if you configure a RAM disc with
- MS-DOS you can then copy MS-DOS files onto it and then form the ADFS
- files on the physical drive and vice versa to take ADFS files in to the
- MS-DOS file system.
- 1.7
- • Programs that work under the PC-emulator. I’ve had lots of informa
- tion about MS-DOS software that does work, but has anyone found any
- software that does NOT work under the PC-emulator?
- 1.7
- • With version 1.09 of the PC emulator, if you do the followingÉ
- 1.7
- *LOAD PC.Emulate 10000
- 1.7
- ?&137C8=0
- 1.7
- *SAVE PC.Emulate2 10000
- 1.7
- you will find that the memory isn’t cleared when you press the reset
- button.
- 1.7
- • One good book to help new MS-DOS’ers (sorry!) is “Quick Reference
- Guide to MS-DOS” by Van Wolverton, published by Microsoft Press,
- obtainable via Watford Electronics at £3.95. (ISBN 1-55615-025-3)
- 1.7
- • From various reports, it seems that CHKDSK does work properly though
- it has to be used with care. It can be used to repair the File Allo
- cation Table (FAT) and repair errors in directories. Files are not
- necessarily stored contiguously on an MS-DOS disc, so if part of a file
- is lost then CHKDSK can be used to convert lost chains to files (i.e.
- write to a disc directory). Generally, CHKDSK by itself is safe. CHKDSK
- *.* /V is usually safe, but CHKDSK *.* /F is dangerous if you don’t know
- what you are doing!
- 1.7
- • One reader says he has solved the problem of “To linefeed or not to
- linefeedÉ” by adding a single pole switch in parallel with the contact
- on the printer dip-switch that sets the auto-linefeed on and off,
- leaving the dip-switch in the open position, of course. Don’t forget
- though that most printers only look at the dip-switch settings at power-
- up, though some do so when you do a software reset with 27,64.
- 1.7
- • With Arc-Writer, to get it not to double space on a Panasonic
- printer, use the AW_PCedit program, select the RX80D and change the
- number of steps per 100 units vertically from 21600 to 600.
- 1.7
- • View 3 works under the emulator if you poke locations A8A1, A8A2 and
- A8A3 with &EA.
- 1.7
- • Acornsoft ISO Pascal, Comal, Prolog and LISP all work under the
- emulator says one reader.
- 1.7
- • Share Analyser (Synergy Software) works perfectly under the 6502
- emulator.
- 1.7
- • Four floppies on 1.2 OS. If you try *con. floppies 4, you will find
- that it tells you the number is too big, but if you use *FX162,135,4 and
- do a <ctrl-break>, you will finds that *STATUS tells you that you have
- four floppies.
- 1.7
- • Booting other drives. In contrast with the BBC micros, you can, on
- Archimedes, *MOUNT 1 and then <shift-break> to boot the disc in drive 1.
- 1.7
- • WIMP Manager. Be aware that the first time Wimp_poll is called, it
- clears the screen.
- 1.7
- • Fitting the backplane: It is an awkward job to fit the backplane
- because two plastic spacers are used into which self-tapping screws have
- to be inserted. This is best done in a vice to avoid stripping screw
- heads and/or sticking screwdrivers through your fingers!
- 1.7
- • ‘Unknown IRQ at &00000000’. If you get this error message (and
- possibly find that the machine hangs up on you) check whether your RS423
- lead is properly screened, if at all. If it is not screened, it seems to
- be able to pick up interference (remember the micro-wave problems
- mentioned in issue 5, page 8?) and this generates spurious interrupts.
- 1.7
- • More ideas on the black art of RS423 communication! Here is one
- reader’s recipe for succesful RS423 transfer, though it may not work for
- everyoneÉ Try using the ‘fix’ module (Archive 1.6 program disc) with
- pins 1,4,8 and 9 linked together and 6 (DSR) and 7 (RTS) as the control
- lines.
- 1.7
- • Running more than one BASIC program. If you have a BASIC program you
- want to run while you are working on another program in memory, you can
- program a couple of keys with:
- 1.7
- *KEY 4 P%=PAGE : PAGE=&30000
- 1.7
- : CHAIN “testprog”|M
- 1.7
- *KEY 5 PAGE=P% : OLD|M
- 1.7
- • System Delta Plus: If you have trouble loading newly formed
- databases and get “No Room” when you know there is plenty of room, add a
- .D to the filename when loading, i.e. type in the filename as, say,
- “RECORDS.D”.
- 1.7
- • Inter-Word: If you have come from the desktop, you will find that
- the tab key does not work. This can be corrected with *FX219,9.
- 1.7
- If you want the £ sign, you will find it is produced by the ` key (far
- top left key).
- 1.7
- If you want the ` signÉ tough! (The £ sign duplicates the “insert ruler”
- function!)
- 1.7
- • Stuck in a black hole? If you find yourself typing in black on
- black, try typing MODE MODE<return>. It allows you to type again, but
- maintains the mode you were in.
- 1.7
- • SystemDevs module. The redirection commands, some of which we said
- didn’t seem to work, are sensitive to spacing. The correct forms are as
- follows where the spaces are represented by bullets (•):
- 1.7
- *CAT•{•>•info• }
- 1.7
- Spools catalogue to file “info”
- 1.7
- *CAT•{•>>•info• }
- 1.7
- Adds catalogue to file “info”
- 1.7
- *BASIC•{•<•data• }•PROG
- 1.7
- Runs “PROG” and uses information in file “data” for input.
- 1.7
- • Using the Acorn ROM Podule: No links are available for the RAM
- sockets, although you can configure the sockets by software for 8k, 32k
- or 128k RAM chips. Using HM6264LP-15 ram in the sockets and configuring
- them as 8k does not immediately work. However if you configure them as
- 32k chip and apply an offset of &2000 when loading i.e.:
- 1.7
- *RMLoad <podule number>
- 1.7
- <socket> <filename> 2000
- 1.7
- then your data will load correctly. This is because the Chip Select (CS)
- on the 8k chips is on the pin Address 13 (pin 26) on the 32k and 128k.
- This causes the 8k chip to be mapped into 8-16k and 24-32k hence the
- offset of 8k. The inverted CS on pin 20 is common to all three devices.
- (Without configuring them as 32k, the operating system reports that the
- device is not big enough for an 8k offset.)
- 1.7
- • Concerning Acornsoft C and TWIN: ‘Concurrency’ (keeping text in one
- window and compiling a program in the other) does not work. The compiler
- (v1.5A) has a bug in it that prevents it from working. Acorn said that
- it used to work OK on the pre-release version! However, compiler output
- can be sent to a file called tmp.temp if the -spool option is used.
- 1.7
- It may be necessary to relocate TWIN in order to compile programs. My
- version of TWIN loaded at &60000 but needed to be relocated to &80000 to
- allow the compiler enough space. (See below.) If the compiler crashes,
- try increasing the SystemSize using *configure.
- 1.7
- The two compiler messages, ‘Fatal I/O error’ and ‘Binary output error’,
- simply mean that your disc is full!
- 1.7
- • More about TWIN. Twin is an editor which seems to have one or two
- hidden features; firstly it is a relocatable program, and consequently
- can be loaded anywhere where RAM exists (barring overwriting OS
- workspace etc.). I have created a version which I call LoTwin which
- loads at &10000; this leaves space for BASIC programs only 256 bytes
- fewer than are available on a BBC Master using Shadow RAM, and yet it
- allows me considerably more work space than the standard Twin.
- 1.7
- To create a version of Twin called ‘MYTWIN’ which loads and runs other
- than at the ‘normal’ address, perform the following actions:
- 1.7
- *DIR <dir’ry_containing _Twin>
- 1.7
- *LOAD TWIN <new_load_address>
- 1.7
- *EX
- 1.7
- *SAVE MYTWIN <new_load_
- 1.7
- address> +<size>
- 1.7
- <size> is obtained from the 3rd column of hex data after the ‘*EX’.
- 1.7
- Then, to invoke the new version, type
- 1.7
- *MYTWIN
- 1.7
- and it will run. Pressing <shift-f5> followed by <T> after entering
- MYTWIN will show the load address on the top line immediately to the
- left of the time.I have yet to see mentioned in print the ‘warm start’
- for TWIN. If something nasty happens and your Archimedes locks up just
- as you have spent a couple of hours typing in something using TWIN, and
- you have no option but to press <ctrl-break>, or even <ctrl-reset>, do
- not despair, simply type:
- 1.7
- *GO <twin_start_address> -WARM
- 1.7
- and you will find yourself back in TWIN exactly as you were when the
- ‘nasty’ happened, barring any corruption caused by the ‘nasty’. Don’t
- forget the ‘-’ preceding the “WARM’! I have found myself in this
- position after a momentary power cut, and although the warm start did
- not restore TWIN as a fully functional editor (due to corruption), it
- restored Twin’s ability to save text, so I saved what I had done, and
- was then able to reload Twin, and then reload my text.
- 1.7
- • Iso Pascal: Be warned before you buy Iso Pascal, it has NO support
- for Arthur − otherwise, says one reader, it is an excellent implementa
- tion. Also (in common with C) it comes with a very thin manual, so a
- copy of TWIN and a book about the language (see the mini-review on page
- 25) will be needed for most people.
- 1.7
- (More information about other languages was sent in, but this was all I
- could digest with my limited knowledge of languages other than BASIC.
- Would anyone be prepared to receive all the “other languages” informa
- tion and knock it up into a special section each month?)
- 1.7
- Using the Computer Concepts ROM Podule
- 1.7
- How many times have you had to press <ctrl-break> and muttered under
- your breath because you’ve lost your function key definitions? That need
- never happen again if you have Computer Concepts’s ROM podule with some
- battery-backed RAM on it. All you do is configure the system to start up
- in the RFS instead of the ADFS and also configure it to auto-boot. Then
- in the RFS, you put a boot file something like:
- 1.7
- REM > RFS:!BOOT
- 1.7
- *SET Run$Path ,ADFS:$.,RFS:$.%.
- 1.7
- *ADFS
- 1.7
- *FX255,8
- 1.7
- PRINT “Acorn ADFS”‘
- 1.7
- *KEY 0 These are
- 1.7
- *KEY 1 my favourite
- 1.7
- *KEY 2 key definitions
- 1.7
- *SET ALIAS$> Cat
- 1.7
- *SET ALIAS$? HELP etc
- 1.7
- *BASIC
- 1.7
- (You will notice that the Run$Path uses ‘$’ instead of ‘%’ as stated on
- page 28 of the Computer Concepts manual.)
- 1.7
- • To get the Inter series software to boot up with a simple call such
- as *ISHEET, copy 65Arthur into the RAM area using *COPY
- ADFS:Modules.65Arthur RFS:65Arthur and, providing you have set up the
- Run$Path as above, *ISHEET, *IWORD and *ICHART will automatically load
- the emulator and then the appropriate software.
- 1.7
- • Installing Wordwise Plus. If you copy the Archimedes version of
- Wordwise Plus from Computer Concepts’s disc (filename “WW+”) into the
- RFS calling it, say, WWIMAGE, you can modify the BASIC program “ISHEET”
- and save it as “WW+” so that, as above, you can just type *WW+ and it
- will auto-load the emulator and run the software. The modifications are
- to change the references to “ISIMAGE” at lines 130 and 270 into
- “WWIMAGE”.
- 1.7
- • If you want to modify any of the programs in a ROM, all you do is
- either LOAD it, edit it and SAVE it or, if you have the modified version
- on disc, just *COPY it. If you tell it to SAVE a file with a name that
- exists in ROM it gives the ram version precedence over the ROM version.
- 1.7
- To find out whether a particular file is in ROM or RAM, use the *INFO
- <filename> command. If it comes up with a “*” before the final figure of
- the information, the file is in the RAM area. To get the ROM version
- back, you either have to do a <ctrl-break> or type *RMREINIT RFS
- <return> because *delete filename removes all trace of it so that even
- the ROM version is inaccessible.
- 1.7
- Thanks to Adrian Look for all the following hints and tips.
- 1.7
- • X-SWI’s. When using SWI’s if you put an X before the name then the
- SYS call from BASIC will not generate an error. For example:
- 1.7
- SYS “XOS_CLI”,block
- 1.7
- • Modes & drawing speed. The VIDC receives the video data down the
- data bus lines of the ARM processor. While this is happening the RISC
- chip cannot perform any processing. This means that the screen modes
- using higher memory will be slower. Try timing a FOR-NEXT loop of
- 1,000,000! So, if speed is of the essence, it may be better to go into
- mode 0, do the calculations and save them in an array and then go into
- mode whatever to plot the results.
- 1.7
- However, there is a compensating factor. The lower memory modes use one
- byte to represent several pixels, thus addressing pixels requires extra
- calculation − whereas the higher memory modes use only one byte to
- represent a pixel so addressing pixels is much quicker. This means that
- graphics will be quicker in higher modes.
- 1.7
- Mode F/N loop Draw Mem. Colours
- 1.7
- (secs) (secs) (k)
- 1.7
- 0 14.9 51 20 2
- 1.7
- 1 14.9 38 20 4
- 1.7
- 2 15.6 34 40 16
- 1.7
- 3 15.6 − 40 Text
- 1.7
- 4 14.9 38 20 2
- 1.7
- 5 14.9 32 20 4
- 1.7
- 6 14.9 − 20 Text
- 1.7
- 7 15.6 − 80 T-Text
- 1.7
- 8 15.6 54 40 4
- 1.7
- 9 15.6 40 40 16
- 1.7
- 10 17.1 39 80 256
- 1.7
- 11 15.6 − 40 Text
- 1.7
- 12 17.1 61 80 16
- 1.7
- 13 17.1 45 80 256
- 1.7
- 14 17.1 − 80 Text
- 1.7
- 15 21.3 79 160 256
- 1.7
- 16 19.6 − 132 Text
- 1.7
- 17 19.5 − 132 Text
- 1.7
- 18 15.4 70 40 2
- 1.7
- 19 16.9 77 80 4
- 1.7
- 20 21.0 98 160 16
- 1.7
- • OS_Pretty Print. Have you ever wondered how the operating system
- manages to display all its messages without any of the words getting
- split at the end of a screen line, no matter what mode it is in? Well,
- the answer is ‘OS_ PrettyPrint’.
- 1.7
- If you print all your strings using this call it will stop any words
- going over the end-of-line boundary. This call recognises the following
- control characters in a special way:
- 1.7
- − CR (CHR$(13)) causes not just a carriage return but also a newline.
- 1.7
- − TAB (CHR$(9)) causes a tabulation to the next multiple of eight
- columns.
- 1.7
- − CHR$(31) is a ‘pad character’, that is, the procedure will print a
- space when this code occurs but it will not break the string up at this
- point.
- 1.7
- Example:
- 1.7
- A$=“Hello my name is...”
- 1.7
- SYS “OS_PrettyPrint”,A$
- 1.7
- • The QUICK option When you use the (Q)uick option in the *COPY and
- *BACKUP commands, the OS will use all available memory. This means that
- if you are in high memory screen modes then you will have less memory to
- use. So if you want even quicker *COPYing or *BACKUPs then try it in a
- mode which uses less memory.
- 1.7
- • Run$Path and File$Path. The FileSwitch uses two system variables
- called Run$Path and File$Path. You can see their values by typing
- either:
- 1.7
- *SHOW File$Path <return> and/or
- 1.7
- *SHOW Run$Path <return>
- 1.7
- You will probably get the following results:
- 1.7
- File$Path : type String, value :
- 1.7
- Run$Path : type String, value : ,%.
- 1.7
- These are the default settings. The values stored in the File$Path and
- Run$Path variables are actually a list of directory filenames separated
- by commas and terminated with dots.
- 1.7
- When the FileSwitch is told to read a file it will look at File$Path
- variable and search for the file in each of the directories listed until
- it finds a match. Similarly the FileSwitch will do the same when it is
- told to execute a file, only it will use the Run$Path variable as the
- list of directories. For example:
- 1.7
- *SET File$Path RFS:%.,,%.
- 1.7
- This would cause the FileSwitch to search for the file first in the RFS
- filing system’s library directory, then in the current filing system’s
- current directory (hence the “,,” which means don’t add anything to the
- filename as entered), and finally in the current filing system’s library
- directory.
- 1.7
- Here is a list of all the possible directory prefixes (although you can
- actually specify any directory by name − wildcards may be used):
- 1.7
- * − all
- 1.7
- $ − root
- 1.7
- & − user
- 1.7
- @ − current
- 1.7
- ^ − parent
- 1.7
- % − library
- 1.7
- } − previous
- 1.7
- • Flushing the Mouse. You may have noticed that the mouse has a buffer
- of its own. This means that the Arc stores all the mouse movements and
- clicks just as it stores the keyboard entries. How many of you play
- around with the mouse when a program is ‘thinking’ or waiting for a
- screen to load? This will leave a whole load of mouse positions and
- clicks in the buffer, so any subsequent MOUSE X,Y,B readings will not
- reflect the true position of the mouse but the positions stored in the
- buffer!!! So how do you clear the buffer? To flush all the buffers,
- type:
- 1.7
- *FX 15 <return>
- 1.7
- to flush just the mouse buffer, type:
- 1.7
- *FX 21,9 <return>
- 1.7
- • Local DATA statements. (Based on an idea sent in by C.R.Fitch) In
- answer to the query last month, it is possible to have DATA statements
- in a program that does not rely on line numbers. What you can do is to
- use the error handler to pin-point a line number just before the local
- data statements. For every data set you want to access, just use the
- following format:
- 1.7
- DEFPROCdata_set
- 1.7
- LOCAL ERROR
- 1.7
- ON ERROR LOCAL RESTORE ERL
- 1.7
- IF ERL=0 THEN ERROR 1,“get line
- 1.7
- number“
- 1.7
- RESTORE ERROR
- 1.7
- DATA 1,2,3,4,5 : REM put your
- 1.7
- own data here
- 1.7
- ENDPROC
- 1.7
- Then if you want to use the data set, just call the procedure, as for
- example:
- 1.7
- PROCdata_set
- 1.7
- FOR i=1 TO 5
- 1.7
- READ data:PRINT data
- 1.7
- NEXT i
- 1.7
- The procedure leaves everything exactly as it was (except the data
- pointer) so it does not affect the program at all. The only snag is that
- we don’t know where the old data pointer was so we can’t continue
- reading data from where we left off! Any ideas??
- 1.7
- (The remaining information in this section is about using the MS-DOS
- emulator. More information than this was sent in, but this was all I
- could digest with my limited knowledge of MS-DOS. Would anyone be
- prepared to receive all such information and knock it up into a special
- MS-DOS section each month?)
- 1.7
-
- 1.7
-